﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Sisco.AplicacionEscritorio.Reporte.Plantillas.Usuario
{
    public partial class FormatoGeneral_Usuario : UserControl
    {
        public FormatoGeneral_Usuario()
        {
            InitializeComponent();
        }

        private void chkSucursal_CheckedChanged(object sender, EventArgs e)
        {
            if (chkSucursal.Checked)
            {
                cmbSucursal.Enabled = true;
                ListarSucursal();
            }
            else
            {
                cmbSucursal.Enabled = false;
                cmbSucursal.DataSource = null;
            }
        }

        private void ListarSucursal()
        {
            if (cmbEmpresa.SelectedIndex >= 0)
            {
                LogicaNegocio.SucursalBLL sucursalBLL = new LogicaNegocio.SucursalBLL();
                cmbSucursal.DataSource = sucursalBLL.Listar(new AccesoDatos.EMPRESA() { ID = int.Parse(cmbEmpresa.SelectedValue.ToString()) });
                cmbSucursal.ValueMember = "ID";
                cmbSucursal.DisplayMember = "CIUDAD";
                cmbSucursal.SelectedIndex = -1;
            }
        }

        private void chkDepartamento_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDepartamento.Checked)
            {
                cmbDepartamento.Enabled = true;
                ListarDepartamento();
            }
            else
            {
                cmbDepartamento.Enabled = false;
                cmbDepartamento.DataSource = null;
            }
        }

        private void ListarDepartamento()
        {
            LogicaNegocio.DepartamentoBLL departamentoBLL = new LogicaNegocio.DepartamentoBLL();
            cmbDepartamento.DataSource = departamentoBLL.Listar();
            cmbDepartamento.ValueMember = "ID";
            cmbDepartamento.DisplayMember = "NOMBREDEPARTAMENTO";
            cmbDepartamento.SelectedIndex = -1;
        }

        private void ListarEmpresa()
        {
            LogicaNegocio.EmpresaBLL empresaBLL = new LogicaNegocio.EmpresaBLL();
            cmbEmpresa.DataSource = empresaBLL.Listar();
            cmbEmpresa.ValueMember = "ID";
            cmbEmpresa.DisplayMember = "NOMBREEMPRESA";
            cmbEmpresa.SelectedIndex = cmbEmpresa.Items.IndexOf(cmbEmpresa.Items.Cast<AccesoDatos.EMPRESA>().SingleOrDefault(x => x.NOMBREEMPRESA.Equals("Unimaq",StringComparison.CurrentCultureIgnoreCase)));
        }

        private void FormatoGeneral_Usuario_Load(object sender, EventArgs e)
        {
            ListarEmpresa();
            ListarSucursal();
            ListarDepartamento();
        }

        private void btnRepBuscar_Click(object sender, EventArgs e)
        {
            int? idSucursal = cmbSucursal.SelectedIndex >= 0 ? int.Parse(cmbSucursal.SelectedValue.ToString()) : new Nullable<int>();
            int? idDpto = cmbDepartamento.SelectedIndex >= 0 ? int.Parse(cmbDepartamento.SelectedValue.ToString()) : new Nullable<int>();

            LogicaNegocio.UsuarioBLL usuarioBLL = new LogicaNegocio.UsuarioBLL();
            DataTable dTable = usuarioBLL.Rep_ListarUsuario(idSucursal, idDpto);

            FormularioReporte formReporte = this.ParentForm as FormularioReporte;

            if (formReporte != null)
            {
                formReporte.showRep_FormatoGeneral_Usuario(dTable);
            }
        }
    }
}
